'use strict';
(function(){
  var baseImageUrl = 'http://static.winnovator.cn/scale/16/';

  var ratef = function(v){
    var tv = (((v +6)/(12)+0.1)*100).toFixed(1);
    if(tv > 100){
      return 100;
    }
    return tv;

  };
  function getRandomNum(Min,Max)
  {
    var Range = Max - Min;
    var Rand = Math.random();
    return(Min + Math.round(Rand * Range));
  }

  var userSelectedSerial = {};


  window.roundDataUtil = {
    getNext: function(answerId){ //根据已有的答题序列获得下一提
      if(answerId === null){//针对用户没有选择的时候
        answerId = currentQuestion.answers[0].id;
        console.log("用户没有选择，默认为：" + answerId);
      }

      var oneAnswer = _answers[answerId];
      var nextItem = oneAnswer.next;
      var data = null;
      var questionIndex = -1;
      if(nextItem.type === 'q'){
        data = questions_map[nextItem.id];
        currentQuestion = data;
        //获得下一题目的索引值
        for(var i = 0 ; i < _questions.length ; i ++){
          var oneQuestoin = _questions[i];
          if(oneQuestoin.id == nextItem.id){
            questionIndex = i;
            break;
          }
        }
      }else{
        //答题结果
        //拿到用户的答题序列
        var answerIds = [];
          _.each(_.values(userSelectedSerial),function(oneArr){
            _.each(oneArr,function(one){
              answerIds.push(one);
            });
          });

        //按照维度进行计算
        var answerDimsList = [];
        _.each(answerIds, function(one){
          answerDimsList.push(_answerDims[one]);
        });

        var dim1Value = 0;
        var dim2Value = 0;
        _.each(answerDimsList, function(oneDimArr){
          _.each(oneDimArr,function(oneDim){
            if(oneDim.name === 1){
              dim1Value += oneDim.value;
            }else if(oneDim.name === 2){
              dim2Value += oneDim.value;
            }
          });
        });
        //根据各个维度获得结果
        var data = null;
        for(var i = 0; i < resultDescData.length; i++){
          var tmpDesc = resultDescData[i];

          if(tmpDesc.check(dim1Value, dim2Value)){
            data = tmpDesc.getResult();
            break;
          }
        }

        if(data === null){
          data = resultDescData[1].getResult();
        }
      }

      return {
        type: nextItem.type,
        data:data,
        pageIndex: questionIndex
      }

    },
    selectItem: function(qid, selectSerial){
    //   console.log(qid);
    //   console.log(selectSerial);
      userSelectedSerial[qid] = selectSerial;
    },
    getUserSelectResult: function(){
      return userSelectedSerial;
    }
  }

  var _questions = [
    {
      'id': 'q1',
      'caption': '和其他人在一起时，你觉得你的孩子是：（请选出<span class="questionCaption">所有</span>你认为符合的选项）',
      'img_src': baseImageUrl + '1.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a11', 'caption': '在和很多人一起玩时表现更出色', 'next':{'type':'q','id':'q2'}},
        {'id':'a12', 'caption': '喜欢集体游戏胜过一个人玩', 'next':{'type':'q','id':'q2'}},
        {'id':'a13', 'caption': '和其他孩子在一起的时候喜欢做众人焦点', 'next':{'type':'q','id':'q2'}},
        {'id':'a14', 'caption': '宁愿一个人呆着而不愿和别的孩子在一起?', 'next':{'type':'q','id':'q2'}},
      ]
    },
    {
      'id': 'q2',
      'caption': '和大人相处时，你觉得你的孩子是：（请选出<span class="questionCaption">所有</span>你认为符合的选项）',
      'img_src': baseImageUrl + '2.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a21', 'caption': '和第一次见到的大人在一起时，一般更想回避', 'next':{'type':'q','id':'q3'}},
        {'id':'a22', 'caption': '同老师说话时会很紧张', 'next':{'type':'q','id':'q3'}},
        {'id':'a23', 'caption': '对于夸奖的话会感到不好意思', 'next':{'type':'q','id':'q3'}},
        {'id':'a24', 'caption': '经常有人说TA很活泼', 'next':{'type':'q','id':'q3'}},
      ]
    },
    {
      'id': 'q3',
      'caption': '关于朋友，你觉得你的孩子是：（请选出<span class="questionCaption">所有</span>你认为符合的选项）',
      'img_src': baseImageUrl + '3.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a31', 'caption': '有很多朋友','next':{'type':'q','id':'q4'}},
        {'id':'a32', 'caption': '和最好的朋友在一起时通常是话更多的一方','next':{'type':'q','id':'q4'}},
        {'id':'a33', 'caption': '会主动结识新朋友','next':{'type':'q','id':'q4'}},
        {'id':'a34', 'caption': '喜欢给朋友说笑话或滑稽的故事','next':{'type':'q','id':'q4'}},
      ]
    },
    {
      'id': 'q4',
      'caption': '关于兴趣爱好，你觉得你的孩子是：（请选出<span class="questionCaption">所有</span>你认为符合的选项）',
      'img_src': baseImageUrl + '4.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a41', 'caption': '有很多不同的爱好和兴趣','next':{'type':'q','id':'q5'}},
        {'id':'a42', 'caption': '喜欢周围有许多热闹的事','next':{'type':'q','id':'q5'}},
        {'id':'a43', 'caption': '喜欢经常外出玩','next':{'type':'q','id':'q5'}},
        {'id':'a44', 'caption': '喜欢做那些紧张快速的任务','next':{'type':'q','id':'q5'}}
      ]
    },
    {
      'id': 'q5',
      'caption': '在聚会时，你觉得你的孩子是：（请选出<span class="questionCaption">所有</span>你认为符合的选项）',
      'img_src': baseImageUrl + '5.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a51', 'caption': '通常能玩得很愉快','next':{'type':'q','id':'q6'}},
        {'id':'a52', 'caption': '大家给ta唱生日快乐歌，会不好意思','next':{'type':'q','id':'q6'}},
        {'id':'a53', 'caption': '能使一个联欢会开得很好','next':{'type':'q','id':'q6'}},
        {'id':'a54', 'caption': '宁愿坐着观看而不去玩','next':{'type':'q','id':'q6'}}
      ]
    },
    {
      'id': 'q6',
      'caption': '外出活动时，你觉得你的孩子是：（请选出<span class="questionCaption">所有</span>你认为符合的选项）',
      'img_src': baseImageUrl + '6.jpg',
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a61', 'caption': '喜欢到“闹鬼”的山洞去冒险','next':{'type':'r','id':'c'}},
        {'id':'a62', 'caption': '喜欢乘坐开得很快的交通工具','next':{'type':'r','id':'c'}},
        {'id':'a63', 'caption': '可能会喜欢跳降落伞之类的活动','next':{'type':'r','id':'c'}},
        {'id':'a64', 'caption': '拍照时会主动摆','next':{'type':'r','id':'c'}}
      ]
    }
  ];
  var _answerDims = {
    'a11': [{'name':2,'value':-1}],
    'a12': [{'name':2,'value':-1}],
    'a13': [{'name':2,'value':-1}],
    'a14': [{'name':1,'value':-1}],
    'a21': [{'name':2,'value':1}],
    'a22': [{'name':2,'value':1}],
    'a23': [{'name':2,'value':1}],
    'a24': [{'name':1,'value':1}],
    'a31': [{'name':1,'value':1}],
    'a32': [{'name':2,'value':-1}],
    'a33': [{'name':1,'value':1}, {'name':2,'value':-1}],
    'a34': [{'name':1,'value':1}],
    'a41': [{'name':1,'value':1}],
    'a42': [{'name':1,'value':1}],
    'a43': [{'name':1,'value':1}],
    'a44': [{'name':1,'value':1}],
    'a51': [{'name':1,'value':1}],
    'a52': [{'name':2,'value':1}],
    'a53': [{'name':1,'value':1}],
    'a54': [{'name':1,'value':-1}],
    'a61': [{'name':1,'value':1}],
    'a62': [{'name':1,'value':1}],
    'a63': [{'name':1,'value':1}],
    'a64': [{'name':2,'value':-1}]
  };
  function isNeiXiang(value){
    if(value>=-2 && value <= 5){
      return true;
    }
    return false;
  }
  function isBuHaiXiu(value){
    if(value>=-6 && value <= 1){
      return true;
    }
    return false;
  }
  var resultDescData =
    [
      {
        check:function(dim1Value,dim2Value){
          if(!isNeiXiang(dim1Value) && isBuHaiXiu(dim2Value)){
            return true;
          }
          return false;
        },
        getResult: function(){
          return {
            id : 'r1',
            title:'狮子',
            rate:0,
            desc:'' +
            '<h4>' +
            '如你所见，你的孩子性格比较外向，倾向于对外部客体作出积极回应，能够在与外界的交往中获取内心的能量；孩子平时的表现也会比较活泼开朗、行动力强，也会喜欢一些比较惊险刺激的活动；另一方面，孩子似乎也不会有害羞的困扰，敢于向不熟悉的人打开心扉，展示自己；需要注意的是风风火火行动的性格可能会让孩子忽略一些细节或别人的感受，同时也记得适当地让孩子提高警惕心哦！' +
            '</h4>',
            url: baseImageUrl + 'r1.jpg'
          }
        }
      },
      {
        check:function(dim1Value,dim2Value){
          if(!isNeiXiang(dim1Value) && !isBuHaiXiu(dim2Value)){
            return true;
          }
          return false;
        },
        getResult: function(){
          return {
            id : 'r2',
            title:'北极熊',
            rate:0,
            desc:'' +
            '<h4>' +
            '也许对此你还有一些疑虑，但是你的孩子是外向型的性格，TA喜欢对外部世界作出积极的回应，也能在与外界的交往过程中获取能量；也许你也能感觉到，其实孩子在熟悉的人和环境面前还是比较活泼开朗的，在平时也会喜欢一些惊险刺激的活动；但另一方面，孩子似乎还有些害羞，不太敢在不熟悉的面前打开心扉或展现自己；害羞其实是害怕自己的缺点暴露的表现，家长可以多给予孩子一些鼓励，创造机会让孩子体验一下当众被表扬的感觉。' +
            '</h4>',
            url: baseImageUrl + 'r2.jpg'
          }
        }
      },
      {
        check:function(dim1Value,dim2Value){
          if(isNeiXiang(dim1Value) && isBuHaiXiu(dim2Value)){
            return true;
          }
          return false;
        },
        getResult: function(){
          return {
            id : 'r3',
            rate:0,
            title:'树袋熊',
            desc:'' +
            '<h4>' +
            '你的孩子性格比较内向，TA倾向于在内部世界里沉思，能够从精神世界获得心理能量，因此，相对于与人交流，孩子更喜欢思考，相应的孩子的逻辑能力就更强，对一些事物也会有自己的理解；同时孩子也会更细腻、谨慎，不太喜欢太有冒险性的事物；但内向不代表害羞哦，你的孩子就能较好地在不熟悉的人面前打开心扉，展现自我，这也是非常难能可贵的。' +
            '</h4>',
            url: baseImageUrl + 'r3.jpg'
          }
        }
      },
      {
        check:function(dim1Value,dim2Value){
          if(isNeiXiang(dim1Value) && !isBuHaiXiu(dim2Value)){
            return true;
          }
          return false;
        },
        getResult: function(){
          return {
            id : 'r4',
            rate:0,
            title:'松鼠',
            desc:'' +
            '<h4>' +
            '你的孩子性格比较内向，TA倾向于在内部世界里沉思，能够从精神世界获得心理能量，因此，相对于与人交流，孩子更喜欢思考，相应的孩子的逻辑能力就更强，对一些事物也会有自己的理解；同时孩子也会更细腻、谨慎，不太喜欢太有冒险性的事物；同时孩子似乎还有些害羞，不太敢在不熟悉的面前打开心扉或展现自己；害羞其实是害怕自己的缺点暴露的表现，家长可以多给予孩子一些鼓励，创造机会让孩子体验一下当众被表扬的感觉。' +
            '</h4>',
            url: baseImageUrl + 'r4.jpg'
          }
        }
      }

    ];

  var currentQuestion = _questions[0];
  var _answers = _.indexBy(
      _.reduceRight(
        _.map(_questions, function(q){return q.answers}),
        function(a, b) { return a.concat(b); }, []),
      function(one){return one.id;}
  );
  var questions_map = _.indexBy(_questions, function(one){return one.id;});
  //var result_map = _.indexBy(resultDescData, function(one){return one.id;});
window.yoparentData = {
  'id':16,
  'qType':'multiple-choice',
  'cate_id': '1',
  'title': '你的孩子像哪种小动物',
  'imgSrc': baseImageUrl + 'face.jpg?t=' + Math.random(),
  'imgWidth': 650,'imgHeight': 310,
  'description': '你的孩子害羞吗？人们似乎总是倾向于把害羞和内向联系在一起。在心理学上这两个概念有什么区别呢？你的孩子是真的害羞还是只是有一点点内向呢？下面这个测试将为你解答这些问题。' +
  '（适用年龄，3-12岁）' +
  '<div style="text-align: center">' +
  ' <img src="http://static.winnovator.cn/scale/16/expert.png?t=2" style="width: 100%;height: auto; margin-top: 25px;"></div>',
  'isCheckResult':false,
  'showCheckResult':false,
  'share': {
    'title': '儿童性格测试',
    'description':''
  },
  'questions': _questions,
  'tpl': 'default'
};
})();
